<!DOCTYPE html>

<html><!-- InstanceBegin template="/Templates/Template.dwt" codeOutsideHTMLIsLocked="false" -->
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
<head>
    <meta charset="utf-8">
    <meta name="renderer" content="webkit">
    <meta http-equiv="Window-target" content="_top">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <!-- InstanceBeginEditable name="doctitle" -->
    <title>Mr. Lan - {{ .seriesValue.Title }}</title>
    <!-- InstanceEndEditable -->
    <meta name="Author" contect="Mr. Lan">
    <meta name="Copyright" content="Mr. Lan">
    <meta name="keywords" content="个人博客,Mr. Lan,Python,Golang" />
    <meta name="description" content="Mr. Lan，一个Golang/Python程序员的个人博客，记录博主学习和成长之路，分享Python/Golang方面技术和源码。" />
    <meta property="og:title" content="Mr. Lan" />
    <meta property="og:title" content="Mr. Lan 网站首页" />
    <meta property="og:type" content="个人博客" />
    <meta property="og:url" content="http://www.fdevops.com" />
    <meta property="og:image" content="http://www.fdevops.com/static/images/logo.png" />
    <meta property="og:site_name" content="www.fdevops.com" />
    <meta property="og:description" content="Mr. Lan，一个Golang/Python程序员的个人博客，记录博主学习和成长之路，分享Python/Golang方面技术和源码。" />
    <link rel="shortcut icon" href="/static/favicon.ico" type="image/x-icon" />
    <link href="../static/css/loading.css" rel="stylesheet" />
    <link href="../static/css/scroll-bar.css" rel="stylesheet" />
    <link href="../static/Eextend/layui/css/layui.css" rel="stylesheet" media="all" />
    <link href="../static/css/common.css" rel="stylesheet" />
    <link href="../static/css/suspension.css" rel="stylesheet" />
    <link href="../static/css/animate.css" rel="stylesheet" />
    <link href="../static/Eextend/iconfont/iconfont.css" rel="stylesheet" />
    <script src="../static/Eextend/iconfont/iconfont.js"></script>
    <script src="../static/js/jquery.min.js"></script>
    <script src="../static/Eextend/layui/layui.js"></script>
    <script src="../static/js/wow.min.js"></script>
    <!-- 让IE8/9支持媒体查询，从而兼容栅格 -->
    <!--[if lt IE 9]>
    <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
    <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->

    <link href="/static/tree/bootstrap/css/bootstrap.min.css" rel="stylesheet">
    <link href="/static/tree/font-awesome/css/font-awesome.min.css" rel="stylesheet">
    <link href="/static/tree/nprogress/nprogress.css" rel="stylesheet">
    <link href="/static/tree/editor.md/css/editormd.preview.css" rel="stylesheet">
    <link href="/static/tree/css/toast.css" rel="stylesheet">
    <link href="/static/tree/css/bookstack.css" rel="stylesheet">
    <link rel="stylesheet" href="/static/tree/katex/katex.min.css">
    <script src="/static/tree/html5shiv/3.7.3/html5shiv.min.js"></script>
    <script src="/static/tree/respond.js/1.4.2/respond.min.js"></script>
    <script src="/static/js/baiduStatistics.js"></script>

    <style>
        .editormd-preview-container ol.linenums li code, .editormd-html-preview ol.linenums li code{
            display: block;
            white-space: pre;
        }
        li.L1, li.L3, li.L5, li.L7, li.L9{background-color: transparent;}
        .editormd-preview-container pre.prettyprint, .editormd-html-preview pre.prettyprint{border-color: transparent;}
        body{-webkit-overflow-scrolling:touch;}
        .alink,.alink a{color: #888 !important;}
        .alink:hover,.alink a:hover{color: red !important;}
    </style>

</head>
<body class="article-menu-hide">
<!--
           ▄              ▄
          ▌▒█           ▄▀▒▌
          ▌▒▒▀▄        ▀▒▒▒▐
         ▐▄▀▒▒▀▀▀▀▄▄▄▀▒▒▒▒▒▐
       ▄▄▀▒▒▒▒▒▒▒▒▒▒▒█▒▒▄█▒▐
     ▄▀▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒▒▒▐
    ▐▒▒▒▄▄▄▒▒▒▒▒▒▒▒▒▒▒▒▒▀▄▒▒▌
    ▌▒▒▐▄█▀▒▒▒▒▄▀█▄▒▒▒▒▒▒▒█▒▐
   ▐▒▒▒▒▒▒▒▒▒▒▒▌██▀▒▒▒▒▒▒▒▒▀▄▌
   ▌▒▀▄██▄▒▒▒▒▒▒▒▒▒▒▒░░░░▒▒▒▒▌
   ▌▀▐▄█▄█▌▄▒▀▒▒▒▒▒▒░░░░░░▒▒▒▐
  ▐▒▀▐▀▐▀▒▒▄▄▒▄▒▒▒  typecho  ▒▌
  ▐▒▒▒▀▀▄▄▒▒▒▄▒▒▒▒▒▒░░░░░░▒▒▒▐
   ▌▒▒▒▒▒▒▀▀▀▒▒▒▒▒▒▒▒░░░░▒▒▒▒▌
   ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▐
    ▀ yo-du ▒▒▒▒▒▒▒▒▒▒▒▄▒▒▒▒▌
      ▀▄▒▒▒▒▒▒▒▒▒▒▄▄▄▀▒▒▒▒▄▀
     ▐▀▒▀▄▄▄▄▄▄▀▀▀▒▒▒▒▒▄▄▀
    ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▀▀

    --你好，世界！生活，从敲的第一行代码开始。
-->
<header>
    <nav>
        <div class="logo">
            <a target='_blank' href="/blog/index">
                <img src="../static/images/logo.png" oncontextmenu="return false;" ondragstart="return false;" />
            </a>
        </div>
        <!-- 汉堡菜单 -->
        <input type="checkbox" id="togglebox" />
        <ul>
            <li><a href="/blog/index" style="font-size: 16px">网站首页</a></li>
            <li><a href="/blog/list" style="font-size: 16px">文章列表</a></li>
            <li><a href="/blog/series" style="font-size: 16px">系列文章</a></li>
            <li><a href="/blog/leave" style="font-size: 16px">网友留言</a></li>
            <li><a href="/blog/site" style="font-size: 16px">站点地图</a></li>
        </ul>
        <label class="menu" for="togglebox">
            <i class="layui-icon layui-extend-hamburg-menu" style="position: relative; top: 12.5px; left: 8.5px;font-size: 32px; font-weight: normal"></i>
        </label>
    </nav>
    <div class="clearfix"></div>
</header>
<!-- InstanceBeginEditable name="EditRegion1" -->
<link href="../static/css/comment.css" rel="stylesheet" />
<link href="../static/css/ResourcesDetails.css" rel="stylesheet" />
<!-- 代码高亮 -->
<link href="../static/Eextend/highlight/styles/monokai-sublime.css" rel="stylesheet" />
<script src="../static/Eextend/highlight/highlight.pack.js"></script>
<div class="layui-container container" style="padding: 0">
    <div class="title_content">
        <div class="m-manual manual-mode-view manual-reader">
            <div class="navbar navbar-static-top manual-head" role="banner">
                <div class="container-fluid">
                    <div class="navbar-header pull-left manual-title">
                        <span class="slidebar" id="slidebar"><i class="fa fa-align-justify"></i></span>
                        <a href="/blog/series_details?series_id={{ .seriesValue.Id }}" title="{{ .seriesValue.Title }}" class="book-title">{{ .seriesValue.Title }}</a>
                        <span style="font-size: 12px;font-weight: 100;"></span>
                    </div>
                </div>
            </div>
            <div class="container-fluid manual-body">

                <div class="manual-right">
                    <div class="manual-article">
                        <div class="article-head">
                            <div class="container-fluid">
                                <div class="row">
                                    <div class="col-md-10 col-md-offset-1 col-xs-12 text-center">
                                        <h1 id="article-title">{{ .seriesDetailsValue.Title }}</h1>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="article-content">
                            <div class="help-block article-info" style="padding-bottom: 20px;">
                                <span><i class="fa fa-user-o"></i> 来源 Mr. Lan</span>
                                <span><i class="fa fa-eye"></i> 浏览 <i class="read-count">{{ .seriesDetailsValue.View }}</i></span>
                                <span class="hidden-xs"><a data-target="#ModalQRcode" data-toggle="modal"><i class="fa fa-qrcode"></i> 扫码</a></span>
                                <span><a data-target="#ModalShare" data-toggle="modal"><i class="fa fa-share-alt"></i> 分享</a></span>
                                <span class="pull-right hidden-xs tooltips" title="更新时间"><i class="fa fa-clock-o"></i>
                                    <i class="updated-at">{{ .seriesDetailsValue.UpdatedAt.Format "2006-01-02 15:04:05" }}</i>
                                </span>
                            </div>

                            <div id="details-content" class="details-content">
                                <textarea style="display:none;">{{ .seriesDetailsValue.Content }}</textarea>
                            </div>

                            <div class="row" style="margin: 20px 0 20px 0">
                                <div class="col-xs-12 hung-pre" style="padding-left: 0; padding-right: 0; margin-bottom: 13px">
                                    {{ if ne .onDetailsValue.Id 0 }}
                                    <span class="text-muted">上一篇:</span><a href="/blog/series_details?series_id={{ .seriesDetailsValue.Parent }}&details_id={{ .onDetailsValue.Id }}"> {{ .onDetailsValue.Text }} </a>
                                    {{ end }}
                                </div>
                                <div class="col-xs-12 hung-next" style="padding-left: 0; padding-right: 0;">
                                    {{ if ne .underDetailsValue.Id 0 }}
                                    <span class="text-muted">下一篇:</span><a href="/blog/series_details?series_id={{ .seriesDetailsValue.Parent }}&details_id={{ .underDetailsValue.Id }}"> {{ .underDetailsValue.Text }} </a>
                                    {{ end }}
                                </div>
                            </div>

                            <div class="card comment">
                                <span id="am_comment" class="target-fix">暗锚,解决锚点偏移</span>
                                <form class="layui-form blog-editor" lay-filter="formComment">
                                    <div class="layui-form-item">
                                        <textarea style="resize: none;" name="content" placeholder="请输入评论内容" class="layui-textarea blog-aricle-comment"></textarea>
                                    </div>
                                    <div class="layui-form-item">
                                        <button type="button" class="layui-btn" onclick="aricleComment({{ .seriesDetailsValue.Id }})" lay-submit lay-filter="formComment">提交评论</button>
                                    </div>
                                </form>
                                <!-- 评论列表 -->
                                <ul class="blog-comment">
                                    {{ range .comment }}
                                        {{ $CommentId := .Id }}
                                        <li>
                                            <div class="comment-parent">
                                                <a><img src="{{ .Avatar }}" alt="" /></a>
                                                <div class="info">
                                                    <span class="username"><a>{{ .Nickname }}</a></span>
                                                    {{ if ne .UserTitle "" }}
                                                    <span class="layui-badge layui-bg-orange">
                                                        {{ .UserTitle }}
                                                    </span>
                                                    {{ end }}
                                                </div>
                                                <div class="content comment-text">
                                                    {{ .Content }}
                                                </div>
                                                <p class="info info-footer">
								<span class="aux-word">
									<i class="layui-icon layui-icon-log"></i>{{ .CreatedAt.Format "2006-01-02 15:04:05" }}
								</span>
                                                    <span class="aux-word">
									<i class="layui-icon layui-extend-liulanqi"></i>{{ .Browser }}
								</span>
                                                    <a class="btn-reply" href="javascript:;">回复</a>
                                                </p>
                                                <div class="replycontainer layui-hide">
                                                    <form class="layui-form blog-editor" lay-filter="formReply">
                                                        <textarea style="resize: none;" name="content" placeholder="请输入评论内容" id="comment-{{ .Id }}" class="layui-textarea"></textarea>
                                                        <button type="button" class="layui-btn layui-btn-sm" onclick="addReply({{ .Id }}, {{ $CommentId }}, {{ .UserId }}, 'comment')" lay-submit lay-filter="formReply">提交</button>
                                                    </form>
                                                </div>
                                            </div>
                                            <hr />
                                            {{ range .ReplyList }}
                                                <div class="comment-child">
                                                    <a><img src="{{ .SAvatar }}" alt="" /></a>
                                                    <div class="info">
                                                        <span class="username"><a>{{ .SNickname }}</a></span>
                                                        {{ if ne .SUserTitle "" }}
                                                            <span class="layui-badge layui-bg-orange">
										{{ .SUserTitle }}
									</span>
                                                        {{ end }}
                                                        <span>回复<a class="to-username">@{{ .DNickname }}</a>：</span>
                                                        {{ if ne .DUserTitle "" }}
                                                            <span class="layui-badge layui-bg-orange">
										{{ .DUserTitle }}
									</span>
                                                        {{ end }}
                                                        <span class="comment-text">{{ .Content }}</span>
                                                    </div>
                                                    <p class="info">
								<span class="aux-word">
									<i class="layui-icon layui-icon-log"></i>{{ .CreatedAt.Format "2006-01-02 15:04:05" }}
								</span>
                                                        <span class="aux-word">
									<i class="layui-icon layui-extend-liulanqi"></i>{{ .Browser }}
								</span>
                                                        <a class="btn-reply" href="javascript:;">回复</a>
                                                    </p>
                                                    <div class="replycontainer layui-hide">
                                                        <form class="layui-form blog-editor" lay-filter="formReply">
                                                            <textarea id="reply-{{ .Id }}" style="resize: none;" name="content" placeholder="请输入评论内容" class="layui-textarea"></textarea>
                                                            <button type="button" onclick="addReply({{ .Id }}, {{ $CommentId }}, {{ .SUserId }}, 'reply')" class="layui-btn layui-btn-sm" lay-submit lay-filter="formReply">提交</button>
                                                        </form>
                                                    </div>
                                                </div>
                                            {{ end }}
                                        </li>
                                    {{ end }}
                                </ul>
                                {{/*<div id="page"></div>*/}}
                            </div>

                            {{/*<div class="jump-top">*/}}
                            {{/*<a href="javascript:;" class="view-backtop"><i class="fa fa-arrow-up" aria-hidden="true"></i></a>*/}}
                            {{/*</div>*/}}
                            <div class="bookstack-bars">
                                <ul>

                                    <li class="visible-xs visible-sm bars-menu bars-menu-hide"><a href="/" title="首页"><i class="fa fa-home"></i></a></li>
                                    <li class="visible-xs visible-sm bars-menu bars-menu-hide">
                                        <a title="分享" href="javascript:" data-toggle="modal" data-target="#ModalShare"><i class="fa fa-share-alt"></i></a>
                                    </li>
                                    <li class="book-menu visible-xs visible-sm">
                                        <a href="javascript:void(0);" title="菜单"><i class="fa fa-align-justify"></i></a>
                                    </li>
                                    <li class="visible-xs visible-sm bars-menu-toggle">
                                        <a title="更多功能"><i class="fa fa-plus-circle"></i><i class="fa fa-minus-circle hide"></i></a>
                                    </li>
                                    <li>
                                        <a href="javascript:;" class="view-backtop"><i class="fa fa-arrow-up" aria-hidden="true"></i></a>
                                    </li>

                                </ul>
                            </div>
                        </div>

                    </div>
                </div>

                <div class="manual-left">
                    <div class="article-search">
                        <div class="input-group">
                            <input type="text" id="searchInputValue" name="keyword" placeholder="Search..." autocomplete="off" class="form-control">
                            <span class="input-group-addon" onclick="searchTitleValue()">
                                <button type="submit"><i class="fa fa-search"></i></button>
                            </span>
                        </div>
                        <div class="pull-right hidden-xs">
                            <i class="fa fa-align-justify"></i>
                        </div>
                    </div>
                    <div class="article-menu">
                        <div class="article-menu-detail">
                            {{ .titleTree }}
                        </div>
                        <div class="search-result">
                            <div class="search-empty" style="display: block;">
                                <i class="fa fa-search-plus" aria-hidden="true"></i>
                                <b class="text">暂无相关搜索结果！</b>
                            </div>
                            <ul class="search-list" id="searchList"></ul>
                        </div>
                    </div>
                </div>

                <div class="manual-progress"><b class="progress-bar"></b></div>
            </div>
            <div class="manual-mask"></div>
        </div>
    </div>
</div>
<footer style="float: left; width: 100%;">
    <p style="margin: 0"><a href="http://www.fdevops.com">Copyright &copy; 2019. Mr. Lan All rights reserved.</a></p>
</footer>
<div id="suspension">
    <div class="livechat-girl animated">
        <img alt="" class="girl" src="../static/images/a.png" oncontextmenu="return false;" ondragstart="return false;">
        <div class="livechat-hint rd-notice-tooltip rd-notice-type-success rd-notice-position-left single-line show_hint">
            <div class="rd-notice-content">嗨，来试试登录吧！</div>
        </div>
        <div class="animated-circles">
            <div class="circle c-1"></div>
            <div class="circle c-2"></div>
            <div class="circle c-3"></div>
        </div>
    </div>
</div>

<script src="/static/js/seriesDetails.js"></script>
<!-- 打字机特效js-->
<script src="../static/js/typewriter-special-effects.js"></script>
<script src="../static/js/Template.js"></script>
    {{/*<script src="/static/tree/jquery/1.12.4/jquery.min.js" type="text/javascript"></script>*/}}
    <script src="/static/tree/jquery/1.12.4/jquery.min.js" type="text/javascript"></script>
    {{/*<script src="/static/tree/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>*/}}
    <script src="/static/tree/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>

{{template "share.html" .}}
{{template "qrcode.html" .}}

    <script type="text/javascript" src="/static/tree/nprogress/nprogress.js"></script>
    <script type="text/javascript" src="/static/tree/highlight/highlight.js"></script>
    <script type="text/javascript" src="/static/tree/highlight/highlightjs-line-numbers.min.js"></script>
    <script type="text/javascript" src="/static/tree/js/jquery.highlight.js"></script>
    <script type="text/javascript" src="/static/tree/js/toast.script.js"></script>
    <script type="text/javascript" src="/static/tree/js/jquery.qrcode.min.js"></script>
    <script type="text/javascript" src="/static/tree/js/clipboard.min.js"></script>
    <script type="text/javascript" src="/static/tree/katex/katex.min.js"></script>
    <script type="text/javascript" src="/static/tree/js/bookstack.js"></script>
    <script type="text/javascript" src="/static/tree/js/main.js"></script>
    <script type="text/javascript">
        'use strict';
        $(function () {

            var keywords="{{.Keywords}}";
            if (keywords){
                var wds =keywords.split(","),l=wds.length;
                for (var i = 0; i < l; i++) {
                    $(".markdown-body").highlight(wds[i].trim());
                }
            }

            //以https或者http开头的url链接，加上target='_blank'
            $(".markdown-body").on("click","a",function (e) {
                e.preventDefault();
                var href=$(this).attr("href"),hrefLower=href.toLowerCase();
                if($(this).attr("target")=="_blank" ||hrefLower.indexOf("http://")==0 || hrefLower.indexOf("https://")==0 ){
                    window.open(href);
                }else{
                    location.href=href;
                }
            });

            show_copy_btn();

            $(".tooltips").tooltip();
            $("#qrcode").qrcode(location.href);

            var clipboard = new ClipboardJS('.btn-copy',{
                // 通过target指定要复印的节点
                target: function(trigger) {
                    return trigger.nextElementSibling;
                }
            });

            clipboard.on('success', function(e) {
                console.info('Copy Content：', e.text);
                alertTips("success","代码复制成功",3000,"");
            });

            clipboard.on('error', function(e) {
                console.log("Copy Error：",e);
            });

            $(".book-menu").click(function () {
                $(".slidebar").trigger("click");
            });

            $(".article-toggle").click(function () {
                if($("body").hasClass("article-menu-hide")){
                    $("body").removeClass("article-menu-hide");
                }else{
                    $("body").addClass("article-menu-hide");
                }
            });
        });
    </script>

{{/* start md文件 */}}
    <script src="/static/editormd/lib/marked.min.js"></script>
    <script src="/static/editormd/lib/prettify.min.js"></script>
    <script src="/static/editormd/lib/raphael.min.js"></script>
    <script src="/static/editormd/lib/underscore.min.js"></script>
    <script src="/static/editormd/lib/sequence-diagram.min.js"></script>
    <script src="/static/editormd/lib/flowchart.min.js"></script>
    <script src="/static/editormd/lib/jquery.flowchart.min.js"></script>
    <script src="/static/editormd/editormd.js"></script>
    <script type="text/javascript">
        $().ready(function () {
            testEditormdView2 = editormd.markdownToHTML("details-content", {
                htmlDecode      : "style,script,iframe",  // you can filter tags decode
                emoji           : true,
                taskList        : true,
                // tex             : true,  // 默认不解析
                flowChart       : true,  // 默认不解析
                sequenceDiagram : true,  // 默认不解析
            });
        })
    </script>
{{/* start md文件 */}}
</body>
<!-- InstanceEnd -->
</html>